package zack.project.domain.activity.service;

import zack.project.domain.activity.model.entity.ActivityAccountEntity;
import zack.project.domain.activity.model.entity.DeliveryOrderEntity;
import zack.project.domain.activity.model.entity.SkuRechargeEntity;
import zack.project.domain.activity.model.entity.UnpaidActivityOrderEntity;

/**用户抽奖活动调额接口
 * @author A1793
 */
public interface IRaffleActivityAccountQuotaService {
    //创建一笔未支付的活动参与单(增加用户抽奖次数)，根据sku充值单(是否需要支付OrderTradeType)来区分不同的参与单
    UnpaidActivityOrderEntity createOrder(SkuRechargeEntity skuRechargeEntity);
    //当用户积分调额支付成功之后，会调用该方法来更新未支付的抽奖单状态并增加用户抽奖次数
    void updateOrder(DeliveryOrderEntity deliveryOrderEntity);

    Integer queryRaffleActivityAccountDayPartakeCount(Long activityId, String userId);

    Integer queryRaffleActivityAccountPartakeCount(Long activityId, String userId);

    ActivityAccountEntity queryActivityAccountEntity(String userId, Long activityId);
}
